 using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Data;
using System.Windows.Forms;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;

namespace Evenkopy
{
    [Serializable()]
    class Settings
    {        
        //string settingsFilePath;
        /// <summary>
        /// Дефолтные пути назначения копирования
        /// </summary>
        public List<DirectoryInfo> defaultDestinationPaths;
        /// <summary>
        /// Единственный экземпляр класса настроек
        /// </summary>
        private static Settings instance;        
        /// <summary>
        /// Полный адресс к текущей папке
        /// </summary>
        public string defaultPath;        
        /// <summary>
        /// Размер окна приложения
        /// </summary>
        public System.Drawing.Size app_WindowSize;
        /// <summary>
        /// Расширение файлов , которые будут отображаться
        /// </summary>
        public string fileType;
        /// <summary>
        /// Цвет нечетной строки файлового менеджера
        /// </summary>
        public System.Drawing.Color listViewItem_firstColor;
        /// <summary>
        /// Цвет четной строки файлового менеджера
        /// </summary>
        public System.Drawing.Color listViewItem_secondColor;
        
        protected Settings()
        {    
        }
        
        public void SaveSettings()
        {
            string file = "";
            
            SaveFileDialog fd = new SaveFileDialog();
            fd.ShowDialog();
            file = fd.FileName;
            
            FileStream writer = new FileStream(file, FileMode.Create, FileAccess.Write);
            BinaryFormatter formatter = new BinaryFormatter();
            formatter.Serialize(writer, instance);
            writer.Close();
        }        
        /// <summary>
        /// Возвращает единственный экземпляр настроек
        /// </summary>
        /// <returns></returns>
        public static Settings GetSettings()
        {
            instance = new Settings();
            FileStream reader = new FileStream("settings1.huilo", FileMode.Open, FileAccess.Read);
            BinaryFormatter formatter = new BinaryFormatter();
            instance = (Settings)formatter.Deserialize(reader);
            reader.Close();
            return instance;            
        }
    }
}
